package com.mym;

import java.util.ArrayList;
import java.util.List;

/**
 * @author miao
 * @version 1.0
 * @date 2025/4/18 14:28
 * @description
 */
public class Test3 {

    /**
     * 查找指定的字符串在某字符串中出现的所有位置
     *
     * @param str     原始字符串
     * @param search  需要查找的字符串
     * @return 所有出现位置的列表
     */
    public static List<Integer> findOccurrences(String str, String search) {
        List<Integer> positions = new ArrayList<>();
        if (str == null || search == null || search.isEmpty()) {
            return positions; // 如果输入无效，返回空列表
        }

        int startIndex = 0;
        while (startIndex < str.length()) {
            int position = str.indexOf(search, startIndex);
            if (position != -1) {
                positions.add(position);
                startIndex = position + 1; // 更新起始索引，继续查找下一个位置
            } else {
                break; // 没有找到，退出循环
            }
        }
        return positions;
    }

    public static void main(String[] args) {
        // 测试代码
        String str = "hello world, hello java, hello python";
        String search = "hello";
        List<Integer> occurrences = findOccurrences(str, search);

        // 打印结果
        System.out.println("Occurrences of \"" + search + "\" in \"" + str + "\": " + occurrences);
    }
}
